<?php
/**
 *
 * PHP versions 5
 *
 * Copyright (C)
 * This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
 * of ERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software
 * Fundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
 *
 * @author Bastian Schröder <bs@chemanet.de>
 * @version 2007-09-02
 * @package rail
 */
class rail_page extends rail_container {

	/**
	 * Get root_page for this rail_page.
	 *
	 * @return rail_page
	 */
	public function get_root_page () {
		// check read permission
		if( !$this->is_readable() )
		 	throw new rail_readpermission_exception( $this );

		if( !isset($this->cache['root_page']) ){
			// finger out root_page
			$root = $this;
			while( $root->get_environment() instanceof rail_page ||  $root->get_environment() instanceof carrier_root || $root->get_environment() instanceof rail_link )
				$root = $root->get_environment();

			$this->cache['root_page'] = $root;
		}

		return $this->cache['root_page'];
	}


} // End of rail_page
?>